package com.hu.system.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import com.hu.system.domain.ProductInfo;

/**
 * 产品信息Mapper接口
 *
 * @author hu
 * @date 2025-01-21
 */
public interface ProductInfoMapper {
    /**
     * 查询产品信息列表
     *
     * @param productInfo 产品信息
     * @return 产品信息集合
     */
    public List<ProductInfo> selectProductInfoList(ProductInfo productInfo);

    /**
     * 查询产品信息
     *
     * @param productId 产品信息主键
     * @return 产品信息
     */
    public ProductInfo selectProductInfoByProductId(Long productId);

    /**
     * 根据SKU查询产品信息
     *
     * @param sku SKU编码
     * @return 产品信息
     */
    public ProductInfo selectProductInfoBySku(String sku);

    /**
     * 根据SKU和店铺ID查询产品信息
     *
     * @param sku SKU编码
     * @param shopId 店铺ID
     * @return 产品信息
     */
    public ProductInfo selectProductInfoBySkuAndShopId(@Param("sku") String sku, @Param("shopId") Long shopId);

    /**
     * 新增产品信息
     *
     * @param productInfo 产品信息
     * @return 结果
     */
    public int insertProductInfo(ProductInfo productInfo);

    /**
     * 修改产品信息
     *
     * @param productInfo 产品信息
     * @return 结果
     */
    public int updateProductInfo(ProductInfo productInfo);

    /**
     * 删除产品信息
     *
     * @param productId 产品信息主键
     * @return 结果
     */
    public int deleteProductInfoByProductId(Long productId);

    /**
     * 批量删除产品信息（软删除）
     *
     * @param productIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteProductInfoByProductIds(Long[] productIds);

    /**
     * 根据产品ID获取SKU列表
     *
     * @param productIds 产品ID集合
     * @return SKU列表
     */
    public List<String> selectSkusByProductIds(Long[] productIds);
}

